vue-devui 1.5.4 → 1.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/carousel/index.es.js +448 -0
- package/carousel/index.umd.js +1 -0
- package/carousel/package.json +8 -0
- package/carousel/style.css +1 -0
- package/code-review/index.es.js +73 -0
- package/code-review/index.umd.js +1 -0
- package/code-review/package.json +8 -0
- package/code-review/style.css +1 -0
- package/editor-md/index.es.js +9173 -0
- package/editor-md/index.umd.js +142 -0
- package/editor-md/package.json +8 -0
- package/editor-md/style.css +1 -0
- package/global.d.ts +5 -0
- package/grid/index.es.js +25 -1
- package/grid/index.umd.js +1 -1
- package/nuxt/components/Carousel.js +3 -0
- package/nuxt/components/CarouselItem.js +3 -0
- package/nuxt/components/CodeReview.js +3 -0
- package/nuxt/components/EditorMd.js +3 -0
- package/nuxt/components/EditorMdInjectionKey.js +3 -0
- package/nuxt/components/MdRender.js +3 -0
- package/nuxt/components/codeReviewProps.js +3 -0
- package/nuxt/components/editorMdProps.js +3 -0
- package/nuxt/components/mdRenderProps.js +3 -0
- package/nuxt/components/mdToolbarItemProps.js +3 -0
- package/package.json +10 -3
- package/style.css +1 -1
- package/types/code-review/index.d.ts +11 -0
- package/types/code-review/src/code-review-types.d.ts +14 -0
- package/types/code-review/src/code-review.d.ts +27 -0
- package/types/code-review/src/composables/use-code-review.d.ts +4 -0
- package/types/editor-md/index.d.ts +12 -0
- package/types/editor-md/src/components/font-color.d.ts +2 -0
- package/types/editor-md/src/components/font-size.d.ts +2 -0
- package/types/editor-md/src/components/md-render.d.ts +95 -0
- package/types/editor-md/src/components/toolbar-item.d.ts +14 -0
- package/types/editor-md/src/components/toolbar.d.ts +3 -0
- package/types/editor-md/src/composables/helper.d.ts +2 -0
- package/types/editor-md/src/composables/md-render-service.d.ts +26 -0
- package/types/editor-md/src/composables/use-editor-md-render.d.ts +10 -0
- package/types/editor-md/src/composables/use-editor-md-theme.d.ts +3 -0
- package/types/editor-md/src/composables/use-editor-md-toolbar.d.ts +4 -0
- package/types/editor-md/src/composables/use-editor-md.d.ts +15 -0
- package/types/editor-md/src/editor-md-types.d.ts +172 -0
- package/types/editor-md/src/editor-md.d.ts +198 -0
- package/types/editor-md/src/icons-config.d.ts +23 -0
- package/types/editor-md/src/plugins/mermaid.d.ts +2 -0
- package/types/editor-md/src/plugins/toc.d.ts +1 -0
- package/types/editor-md/src/toolbar-config.d.ts +22 -0
- package/types/editor-md/src/utils.d.ts +2 -0
- package/types/grid/src/grid-types.d.ts +4 -0
- package/types/grid/src/row.d.ts +9 -0
- package/types/menu/src/menu.d.ts +1 -1
- package/types/nav-sprite/src/nav-sprite.d.ts +1 -1
- package/types/vue-devui.d.ts +3 -1
- package/vue-devui.es.js +16052 -14237
- package/vue-devui.umd.js +135 -20
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
import { defineComponent, toRefs, computed, createVNode, resolveDynamicComponent, mergeProps, ref, watch, onMounted, onBeforeUnmount, Fragment, Comment } from "vue";
|
|
2
|
+
const carouselProps = {
|
|
3
|
+
arrowTrigger: {
|
|
4
|
+
type: String,
|
|
5
|
+
default: "hover"
|
|
6
|
+
},
|
|
7
|
+
autoplay: {
|
|
8
|
+
type: Boolean,
|
|
9
|
+
default: false
|
|
10
|
+
},
|
|
11
|
+
autoplaySpeed: {
|
|
12
|
+
type: Number,
|
|
13
|
+
default: 3e3
|
|
14
|
+
},
|
|
15
|
+
height: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: "100%"
|
|
18
|
+
},
|
|
19
|
+
showDots: {
|
|
20
|
+
type: Boolean,
|
|
21
|
+
default: true
|
|
22
|
+
},
|
|
23
|
+
dotTrigger: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: "click"
|
|
26
|
+
},
|
|
27
|
+
dotPosition: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: "bottom"
|
|
30
|
+
},
|
|
31
|
+
activeIndex: {
|
|
32
|
+
type: Number,
|
|
33
|
+
default: 0
|
|
34
|
+
},
|
|
35
|
+
transitionSpeed: {
|
|
36
|
+
type: Number,
|
|
37
|
+
default: 500
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const DEFAULT_PREFIX = "icon";
|
|
41
|
+
const iconProps = {
|
|
42
|
+
name: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: "",
|
|
45
|
+
required: true
|
|
46
|
+
},
|
|
47
|
+
size: {
|
|
48
|
+
type: [Number, String],
|
|
49
|
+
default: "inherit"
|
|
50
|
+
},
|
|
51
|
+
color: {
|
|
52
|
+
type: String,
|
|
53
|
+
default: "inherit"
|
|
54
|
+
},
|
|
55
|
+
component: {
|
|
56
|
+
type: Object,
|
|
57
|
+
default: null
|
|
58
|
+
},
|
|
59
|
+
classPrefix: {
|
|
60
|
+
type: String,
|
|
61
|
+
default: DEFAULT_PREFIX
|
|
62
|
+
},
|
|
63
|
+
operable: {
|
|
64
|
+
type: Boolean,
|
|
65
|
+
default: false
|
|
66
|
+
},
|
|
67
|
+
disabled: {
|
|
68
|
+
type: Boolean,
|
|
69
|
+
default: false
|
|
70
|
+
},
|
|
71
|
+
rotate: {
|
|
72
|
+
type: [Number, String]
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const svgIconProps = {
|
|
76
|
+
name: {
|
|
77
|
+
type: String,
|
|
78
|
+
default: "",
|
|
79
|
+
required: true
|
|
80
|
+
},
|
|
81
|
+
color: {
|
|
82
|
+
type: String,
|
|
83
|
+
default: "inherit"
|
|
84
|
+
},
|
|
85
|
+
size: {
|
|
86
|
+
type: [Number, String],
|
|
87
|
+
default: "inherit"
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
function createBem(namespace, element, modifier) {
|
|
91
|
+
let cls = namespace;
|
|
92
|
+
if (element) {
|
|
93
|
+
cls += `__${element}`;
|
|
94
|
+
}
|
|
95
|
+
if (modifier) {
|
|
96
|
+
cls += `--${modifier}`;
|
|
97
|
+
}
|
|
98
|
+
return cls;
|
|
99
|
+
}
|
|
100
|
+
function useNamespace(block, needDot = false) {
|
|
101
|
+
const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
|
|
102
|
+
const b = () => createBem(namespace);
|
|
103
|
+
const e = (element) => element ? createBem(namespace, element) : "";
|
|
104
|
+
const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
|
|
105
|
+
const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
|
|
106
|
+
return {
|
|
107
|
+
b,
|
|
108
|
+
e,
|
|
109
|
+
m,
|
|
110
|
+
em
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
var icon = "";
|
|
114
|
+
var svgIcon = defineComponent({
|
|
115
|
+
name: "DSvgIcon",
|
|
116
|
+
props: svgIconProps,
|
|
117
|
+
setup(props) {
|
|
118
|
+
const {
|
|
119
|
+
name,
|
|
120
|
+
color,
|
|
121
|
+
size
|
|
122
|
+
} = toRefs(props);
|
|
123
|
+
const ns = useNamespace("svg-icon");
|
|
124
|
+
const iconName = computed(() => `#icon-${name.value}`);
|
|
125
|
+
const iconSize = computed(() => {
|
|
126
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
127
|
+
});
|
|
128
|
+
const styles = {
|
|
129
|
+
width: iconSize.value,
|
|
130
|
+
height: iconSize.value
|
|
131
|
+
};
|
|
132
|
+
return () => {
|
|
133
|
+
return createVNode("svg", {
|
|
134
|
+
"class": ns.b(),
|
|
135
|
+
"style": styles
|
|
136
|
+
}, [createVNode("use", {
|
|
137
|
+
"xlink:href": iconName.value,
|
|
138
|
+
"fill": color.value
|
|
139
|
+
}, null)]);
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
function isUrl(value) {
|
|
144
|
+
return /^((http|https):)?\/\//.test(value);
|
|
145
|
+
}
|
|
146
|
+
function useIconDom(props, ctx) {
|
|
147
|
+
const {
|
|
148
|
+
component,
|
|
149
|
+
name,
|
|
150
|
+
size,
|
|
151
|
+
color,
|
|
152
|
+
classPrefix,
|
|
153
|
+
rotate
|
|
154
|
+
} = toRefs(props);
|
|
155
|
+
const ns = useNamespace("icon");
|
|
156
|
+
const iconSize = computed(() => {
|
|
157
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
158
|
+
});
|
|
159
|
+
const IconComponent = component.value ? resolveDynamicComponent(component.value) : resolveDynamicComponent(svgIcon);
|
|
160
|
+
const imgIconDom = () => {
|
|
161
|
+
return createVNode("img", mergeProps({
|
|
162
|
+
"src": name.value,
|
|
163
|
+
"alt": name.value.split("/")[name.value.split("/").length - 1],
|
|
164
|
+
"class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
|
|
165
|
+
"style": {
|
|
166
|
+
width: iconSize.value || "",
|
|
167
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`,
|
|
168
|
+
verticalAlign: "middle"
|
|
169
|
+
}
|
|
170
|
+
}, ctx.attrs), null);
|
|
171
|
+
};
|
|
172
|
+
const svgIconDom = () => {
|
|
173
|
+
return createVNode(IconComponent, mergeProps({
|
|
174
|
+
"name": name.value,
|
|
175
|
+
"color": color.value,
|
|
176
|
+
"size": iconSize.value,
|
|
177
|
+
"class": [(rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
|
|
178
|
+
"style": {
|
|
179
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
|
|
180
|
+
}
|
|
181
|
+
}, ctx.attrs), null);
|
|
182
|
+
};
|
|
183
|
+
const fontIconDom = () => {
|
|
184
|
+
const fontIconClass = /^icon-/.test(name.value) ? name.value : `${classPrefix.value}-${name.value}`;
|
|
185
|
+
return createVNode("i", mergeProps({
|
|
186
|
+
"class": [classPrefix.value, fontIconClass, (rotate == null ? void 0 : rotate.value) === "infinite" && ns.m("spin")],
|
|
187
|
+
"style": {
|
|
188
|
+
fontSize: iconSize.value,
|
|
189
|
+
color: color.value,
|
|
190
|
+
transform: `rotate(${rotate == null ? void 0 : rotate.value}deg)`
|
|
191
|
+
}
|
|
192
|
+
}, ctx.attrs), null);
|
|
193
|
+
};
|
|
194
|
+
const iconDom = () => {
|
|
195
|
+
return component.value ? svgIconDom() : isUrl(name.value) ? imgIconDom() : fontIconDom();
|
|
196
|
+
};
|
|
197
|
+
return {
|
|
198
|
+
iconDom
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
var Icon = defineComponent({
|
|
202
|
+
name: "DIcon",
|
|
203
|
+
props: iconProps,
|
|
204
|
+
emits: ["click"],
|
|
205
|
+
setup(props, ctx) {
|
|
206
|
+
const {
|
|
207
|
+
disabled,
|
|
208
|
+
operable
|
|
209
|
+
} = toRefs(props);
|
|
210
|
+
const {
|
|
211
|
+
iconDom
|
|
212
|
+
} = useIconDom(props, ctx);
|
|
213
|
+
const ns = useNamespace("icon");
|
|
214
|
+
const wrapClassed = computed(() => ({
|
|
215
|
+
[ns.e("container")]: true,
|
|
216
|
+
[ns.m("disabled")]: disabled.value,
|
|
217
|
+
[ns.m("operable")]: operable.value,
|
|
218
|
+
[ns.m("no-slots")]: !Object.keys(ctx.slots).length
|
|
219
|
+
}));
|
|
220
|
+
const onClick = (e) => {
|
|
221
|
+
if (disabled.value) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
ctx.emit("click", e);
|
|
225
|
+
};
|
|
226
|
+
return () => {
|
|
227
|
+
var _a, _b, _c, _d;
|
|
228
|
+
return createVNode("div", {
|
|
229
|
+
"class": wrapClassed.value,
|
|
230
|
+
"onClick": onClick
|
|
231
|
+
}, [(_b = (_a = ctx.slots).prefix) == null ? void 0 : _b.call(_a), iconDom(), (_d = (_c = ctx.slots).suffix) == null ? void 0 : _d.call(_c)]);
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
var carousel = "";
|
|
236
|
+
var Carousel = defineComponent({
|
|
237
|
+
name: "DCarousel",
|
|
238
|
+
props: carouselProps,
|
|
239
|
+
emits: ["update:activeIndex", "activeIndexChange"],
|
|
240
|
+
setup(props, {
|
|
241
|
+
emit,
|
|
242
|
+
slots,
|
|
243
|
+
expose
|
|
244
|
+
}) {
|
|
245
|
+
const ns = useNamespace("carousel");
|
|
246
|
+
const {
|
|
247
|
+
height,
|
|
248
|
+
showDots,
|
|
249
|
+
dotPosition,
|
|
250
|
+
arrowTrigger,
|
|
251
|
+
autoplay,
|
|
252
|
+
autoplaySpeed,
|
|
253
|
+
dotTrigger,
|
|
254
|
+
activeIndex,
|
|
255
|
+
transitionSpeed
|
|
256
|
+
} = toRefs(props);
|
|
257
|
+
const itemCount = ref(0);
|
|
258
|
+
const showArrow = ref(false);
|
|
259
|
+
const currentIndex = ref(0);
|
|
260
|
+
const wrapperRef = ref(null);
|
|
261
|
+
const containerRef = ref(null);
|
|
262
|
+
const scheduledId = ref(null);
|
|
263
|
+
watch(() => arrowTrigger, () => {
|
|
264
|
+
showArrow.value = arrowTrigger.value === "always";
|
|
265
|
+
}, {
|
|
266
|
+
immediate: true
|
|
267
|
+
});
|
|
268
|
+
watch(() => activeIndex, () => {
|
|
269
|
+
currentIndex.value = activeIndex.value;
|
|
270
|
+
}, {
|
|
271
|
+
immediate: true
|
|
272
|
+
});
|
|
273
|
+
const translatePosition = (size) => {
|
|
274
|
+
if (containerRef.value) {
|
|
275
|
+
containerRef.value.style.left = `${-size * 100}%`;
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
const adjustTransition = (targetEl) => {
|
|
279
|
+
setTimeout(() => {
|
|
280
|
+
if (containerRef.value) {
|
|
281
|
+
containerRef.value.style.transition = "";
|
|
282
|
+
}
|
|
283
|
+
targetEl.style.transform = "";
|
|
284
|
+
translatePosition(currentIndex.value);
|
|
285
|
+
}, transitionSpeed.value);
|
|
286
|
+
};
|
|
287
|
+
const adjustPosition = (targetEl, firstToLast) => {
|
|
288
|
+
if (wrapperRef.value) {
|
|
289
|
+
const wrapperRect = wrapperRef.value.getBoundingClientRect();
|
|
290
|
+
targetEl.style.transform = `translateX(${(firstToLast ? -itemCount.value : itemCount.value) * wrapperRect.width}px)`;
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
const clearScheduledTransition = () => {
|
|
294
|
+
if (scheduledId.value) {
|
|
295
|
+
clearTimeout(scheduledId.value);
|
|
296
|
+
scheduledId.value = null;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
const autoScheduleTransition = (callback) => {
|
|
300
|
+
clearScheduledTransition();
|
|
301
|
+
if (autoplay.value && autoplaySpeed.value) {
|
|
302
|
+
scheduledId.value = setTimeout(() => {
|
|
303
|
+
callback == null ? void 0 : callback();
|
|
304
|
+
}, autoplaySpeed.value);
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
const goto = (index2) => {
|
|
308
|
+
if (index2 === currentIndex.value || !wrapperRef.value || !containerRef.value) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
containerRef.value.style.transition = `left ${transitionSpeed.value}ms ease`;
|
|
312
|
+
let latestIndex = currentIndex.value;
|
|
313
|
+
if (index2 < 0 && currentIndex.value === 0) {
|
|
314
|
+
latestIndex = itemCount.value - 1;
|
|
315
|
+
const targetEl = containerRef.value.children[latestIndex];
|
|
316
|
+
adjustPosition(targetEl, true);
|
|
317
|
+
translatePosition(-1);
|
|
318
|
+
adjustTransition(targetEl);
|
|
319
|
+
} else if (index2 >= itemCount.value && currentIndex.value === itemCount.value - 1) {
|
|
320
|
+
latestIndex = 0;
|
|
321
|
+
const targetEl = containerRef.value.children[latestIndex];
|
|
322
|
+
adjustPosition(targetEl, false);
|
|
323
|
+
translatePosition(itemCount.value);
|
|
324
|
+
adjustTransition(targetEl);
|
|
325
|
+
} else {
|
|
326
|
+
latestIndex = index2 < 0 ? 0 : index2 > itemCount.value - 1 ? itemCount.value - 1 : index2;
|
|
327
|
+
translatePosition(latestIndex);
|
|
328
|
+
}
|
|
329
|
+
currentIndex.value = latestIndex;
|
|
330
|
+
emit("update:activeIndex", latestIndex);
|
|
331
|
+
emit("activeIndexChange", latestIndex);
|
|
332
|
+
autoScheduleTransition(() => {
|
|
333
|
+
goto(currentIndex.value + 1);
|
|
334
|
+
});
|
|
335
|
+
};
|
|
336
|
+
const prev = () => {
|
|
337
|
+
goto(currentIndex.value - 1);
|
|
338
|
+
};
|
|
339
|
+
const next = () => {
|
|
340
|
+
goto(currentIndex.value + 1);
|
|
341
|
+
};
|
|
342
|
+
const arrowMouseEvent = (type) => {
|
|
343
|
+
if (arrowTrigger.value !== "hover") {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
showArrow.value = type === "enter";
|
|
347
|
+
};
|
|
348
|
+
const switchStep = (index2, type) => {
|
|
349
|
+
if (type === dotTrigger.value) {
|
|
350
|
+
goto(index2);
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
const changeItemCount = (val) => {
|
|
354
|
+
itemCount.value = val;
|
|
355
|
+
autoScheduleTransition(next);
|
|
356
|
+
};
|
|
357
|
+
onMounted(() => {
|
|
358
|
+
if (containerRef.value) {
|
|
359
|
+
containerRef.value.style.transition = `left ${transitionSpeed.value}ms ease`;
|
|
360
|
+
containerRef.value.style.left = "0%";
|
|
361
|
+
}
|
|
362
|
+
autoScheduleTransition(next);
|
|
363
|
+
});
|
|
364
|
+
onBeforeUnmount(() => {
|
|
365
|
+
clearScheduledTransition();
|
|
366
|
+
});
|
|
367
|
+
expose({
|
|
368
|
+
prev,
|
|
369
|
+
next,
|
|
370
|
+
goto
|
|
371
|
+
});
|
|
372
|
+
return () => {
|
|
373
|
+
var _a, _b;
|
|
374
|
+
const slot = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) != null ? _b : [];
|
|
375
|
+
let children = slot;
|
|
376
|
+
if (children.length === 1 && children[0].type === Fragment) {
|
|
377
|
+
children = (children[0].children || []).filter((item) => (item == null ? void 0 : item.type) !== Comment);
|
|
378
|
+
}
|
|
379
|
+
if (children.length !== itemCount.value) {
|
|
380
|
+
changeItemCount(children.length);
|
|
381
|
+
}
|
|
382
|
+
return createVNode("div", {
|
|
383
|
+
"class": ns.b(),
|
|
384
|
+
"style": {
|
|
385
|
+
height: height.value
|
|
386
|
+
},
|
|
387
|
+
"onMouseenter": () => arrowMouseEvent("enter"),
|
|
388
|
+
"onMouseleave": () => arrowMouseEvent("leave")
|
|
389
|
+
}, [arrowTrigger.value !== "never" && showArrow.value ? createVNode("div", {
|
|
390
|
+
"class": ns.e("arrow")
|
|
391
|
+
}, [createVNode("button", {
|
|
392
|
+
"class": "arrow-left",
|
|
393
|
+
"onClick": () => prev()
|
|
394
|
+
}, [createVNode(Icon, {
|
|
395
|
+
"name": "arrow-left"
|
|
396
|
+
}, null)]), createVNode("button", {
|
|
397
|
+
"class": "arrow-right",
|
|
398
|
+
"onClick": () => next()
|
|
399
|
+
}, [createVNode(Icon, {
|
|
400
|
+
"name": "arrow-right"
|
|
401
|
+
}, null)])]) : null, createVNode("div", {
|
|
402
|
+
"class": ns.e("item-wrapper"),
|
|
403
|
+
"ref": wrapperRef
|
|
404
|
+
}, [createVNode("div", {
|
|
405
|
+
"class": ns.e("item-container"),
|
|
406
|
+
"style": {
|
|
407
|
+
width: `${itemCount.value * 100}%`
|
|
408
|
+
},
|
|
409
|
+
"ref": containerRef
|
|
410
|
+
}, [slot])]), itemCount.value > 0 && showDots.value ? createVNode("ul", {
|
|
411
|
+
"class": [ns.e("dots"), dotPosition.value]
|
|
412
|
+
}, [children.map((_, index2) => createVNode("li", {
|
|
413
|
+
"class": {
|
|
414
|
+
"dot-item": true,
|
|
415
|
+
active: currentIndex.value === index2
|
|
416
|
+
},
|
|
417
|
+
"onClick": () => switchStep(index2, "click"),
|
|
418
|
+
"onMouseenter": () => switchStep(index2, "hover"),
|
|
419
|
+
"style": {
|
|
420
|
+
transition: `all ${transitionSpeed.value}ms ease`
|
|
421
|
+
}
|
|
422
|
+
}, null))]) : null]);
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
var CarouselItem = defineComponent({
|
|
427
|
+
name: "DCarouselItem",
|
|
428
|
+
setup(props, {
|
|
429
|
+
slots
|
|
430
|
+
}) {
|
|
431
|
+
var _a;
|
|
432
|
+
const ns = useNamespace("carousel");
|
|
433
|
+
const children = (_a = slots.default) == null ? void 0 : _a.call(slots);
|
|
434
|
+
return () => createVNode("div", {
|
|
435
|
+
"class": ns.e("item")
|
|
436
|
+
}, [children]);
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
var index = {
|
|
440
|
+
title: "Carousel \u8D70\u9A6C\u706F",
|
|
441
|
+
category: "\u6570\u636E\u5C55\u793A",
|
|
442
|
+
status: "100%",
|
|
443
|
+
install(app) {
|
|
444
|
+
app.component(Carousel.name, Carousel);
|
|
445
|
+
app.component(CarouselItem.name, CarouselItem);
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
export { Carousel, CarouselItem, index as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(p,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(p=typeof globalThis!="undefined"?globalThis:p||self,e(p.index={},p.Vue))})(this,function(p,e){"use strict";const O={arrowTrigger:{type:String,default:"hover"},autoplay:{type:Boolean,default:!1},autoplaySpeed:{type:Number,default:3e3},height:{type:String,default:"100%"},showDots:{type:Boolean,default:!0},dotTrigger:{type:String,default:"click"},dotPosition:{type:String,default:"bottom"},activeIndex:{type:Number,default:0},transitionSpeed:{type:Number,default:500}},X={name:{type:String,default:"",required:!0},size:{type:[Number,String],default:"inherit"},color:{type:String,default:"inherit"},component:{type:Object,default:null},classPrefix:{type:String,default:"icon"},operable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},rotate:{type:[Number,String]}},L={name:{type:String,default:"",required:!0},color:{type:String,default:"inherit"},size:{type:[Number,String],default:"inherit"}};function b(r,a,o){let l=r;return a&&(l+=`__${a}`),o&&(l+=`--${o}`),l}function N(r,a=!1){const o=a?`.devui-${r}`:`devui-${r}`;return{b:()=>b(o),e:t=>t?b(o,t):"",m:t=>t?b(o,"",t):"",em:(t,i)=>t&&i?b(o,t,i):""}}var Y="",G=e.defineComponent({name:"DSvgIcon",props:L,setup(r){const{name:a,color:o,size:l}=e.toRefs(r),u=N("svg-icon"),d=e.computed(()=>`#icon-${a.value}`),m=e.computed(()=>typeof l.value=="number"?`${l.value}px`:l.value),t={width:m.value,height:m.value};return()=>e.createVNode("svg",{class:u.b(),style:t},[e.createVNode("use",{"xlink:href":d.value,fill:o.value},null)])}});function H(r){return/^((http|https):)?\/\//.test(r)}function J(r,a){const{component:o,name:l,size:u,color:d,classPrefix:m,rotate:t}=e.toRefs(r),i=N("icon"),y=e.computed(()=>typeof u.value=="number"?`${u.value}px`:u.value),h=o.value?e.resolveDynamicComponent(o.value):e.resolveDynamicComponent(G),C=()=>e.createVNode("img",e.mergeProps({src:l.value,alt:l.value.split("/")[l.value.split("/").length-1],class:[(t==null?void 0:t.value)==="infinite"&&i.m("spin")],style:{width:y.value||"",transform:`rotate(${t==null?void 0:t.value}deg)`,verticalAlign:"middle"}},a.attrs),null),D=()=>e.createVNode(h,e.mergeProps({name:l.value,color:d.value,size:y.value,class:[(t==null?void 0:t.value)==="infinite"&&i.m("spin")],style:{transform:`rotate(${t==null?void 0:t.value}deg)`}},a.attrs),null),I=()=>{const S=/^icon-/.test(l.value)?l.value:`${m.value}-${l.value}`;return e.createVNode("i",e.mergeProps({class:[m.value,S,(t==null?void 0:t.value)==="infinite"&&i.m("spin")],style:{fontSize:y.value,color:d.value,transform:`rotate(${t==null?void 0:t.value}deg)`}},a.attrs),null)};return{iconDom:()=>o.value?D():H(l.value)?C():I()}}var _=e.defineComponent({name:"DIcon",props:X,emits:["click"],setup(r,a){const{disabled:o,operable:l}=e.toRefs(r),{iconDom:u}=J(r,a),d=N("icon"),m=e.computed(()=>({[d.e("container")]:!0,[d.m("disabled")]:o.value,[d.m("operable")]:l.value,[d.m("no-slots")]:!Object.keys(a.slots).length})),t=i=>{o.value||a.emit("click",i)};return()=>{var i,y,h,C;return e.createVNode("div",{class:m.value,onClick:t},[(y=(i=a.slots).prefix)==null?void 0:y.call(i),u(),(C=(h=a.slots).suffix)==null?void 0:C.call(h)])}}}),Z="",z=e.defineComponent({name:"DCarousel",props:O,emits:["update:activeIndex","activeIndexChange"],setup(r,{emit:a,slots:o,expose:l}){const u=N("carousel"),{height:d,showDots:m,dotPosition:t,arrowTrigger:i,autoplay:y,autoplaySpeed:h,dotTrigger:C,activeIndex:D,transitionSpeed:I}=e.toRefs(r),c=e.ref(0),S=e.ref(!1),v=e.ref(0),V=e.ref(null),f=e.ref(null),$=e.ref(null);e.watch(()=>i,()=>{S.value=i.value==="always"},{immediate:!0}),e.watch(()=>D,()=>{v.value=D.value},{immediate:!0});const P=n=>{f.value&&(f.value.style.left=`${-n*100}%`)},j=n=>{setTimeout(()=>{f.value&&(f.value.style.transition=""),n.style.transform="",P(v.value)},I.value)},k=(n,s)=>{if(V.value){const g=V.value.getBoundingClientRect();n.style.transform=`translateX(${(s?-c.value:c.value)*g.width}px)`}},A=()=>{$.value&&(clearTimeout($.value),$.value=null)},B=n=>{A(),y.value&&h.value&&($.value=setTimeout(()=>{n==null||n()},h.value))},w=n=>{if(n===v.value||!V.value||!f.value)return;f.value.style.transition=`left ${I.value}ms ease`;let s=v.value;if(n<0&&v.value===0){s=c.value-1;const g=f.value.children[s];k(g,!0),P(-1),j(g)}else if(n>=c.value&&v.value===c.value-1){s=0;const g=f.value.children[s];k(g,!1),P(c.value),j(g)}else s=n<0?0:n>c.value-1?c.value-1:n,P(s);v.value=s,a("update:activeIndex",s),a("activeIndexChange",s),B(()=>{w(v.value+1)})},F=()=>{w(v.value-1)},T=()=>{w(v.value+1)},x=n=>{i.value==="hover"&&(S.value=n==="enter")},U=(n,s)=>{s===C.value&&w(n)},Q=n=>{c.value=n,B(T)};return e.onMounted(()=>{f.value&&(f.value.style.transition=`left ${I.value}ms ease`,f.value.style.left="0%"),B(T)}),e.onBeforeUnmount(()=>{A()}),l({prev:F,next:T,goto:w}),()=>{var g,q;const n=(q=(g=o.default)==null?void 0:g.call(o))!=null?q:[];let s=n;return s.length===1&&s[0].type===e.Fragment&&(s=(s[0].children||[]).filter(R=>(R==null?void 0:R.type)!==e.Comment)),s.length!==c.value&&Q(s.length),e.createVNode("div",{class:u.b(),style:{height:d.value},onMouseenter:()=>x("enter"),onMouseleave:()=>x("leave")},[i.value!=="never"&&S.value?e.createVNode("div",{class:u.e("arrow")},[e.createVNode("button",{class:"arrow-left",onClick:()=>F()},[e.createVNode(_,{name:"arrow-left"},null)]),e.createVNode("button",{class:"arrow-right",onClick:()=>T()},[e.createVNode(_,{name:"arrow-right"},null)])]):null,e.createVNode("div",{class:u.e("item-wrapper"),ref:V},[e.createVNode("div",{class:u.e("item-container"),style:{width:`${c.value*100}%`},ref:f},[n])]),c.value>0&&m.value?e.createVNode("ul",{class:[u.e("dots"),t.value]},[s.map((R,M)=>e.createVNode("li",{class:{"dot-item":!0,active:v.value===M},onClick:()=>U(M,"click"),onMouseenter:()=>U(M,"hover"),style:{transition:`all ${I.value}ms ease`}},null))]):null])}}}),E=e.defineComponent({name:"DCarouselItem",setup(r,{slots:a}){var u;const o=N("carousel"),l=(u=a.default)==null?void 0:u.call(a);return()=>e.createVNode("div",{class:o.e("item")},[l])}}),K={title:"Carousel \u8D70\u9A6C\u706F",category:"\u6570\u636E\u5C55\u793A",status:"100%",install(r){r.component(z.name,z),r.component(E.name,E)}};p.Carousel=z,p.CarouselItem=E,p.default=K,Object.defineProperty(p,"__esModule",{value:!0}),p[Symbol.toStringTag]="Module"});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.devui-icon__container{display:inline-block;color:var(--devui-icon-fill, #71757f)}.devui-icon__container>*:not(:last-child){vertical-align:middle;margin-right:8px}.devui-icon__container i{vertical-align:middle;transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--no-slots i,.devui-icon--no-slots img{display:block}.devui-icon--disabled{color:var(--devui-disabled-text, #adb0b8);cursor:not-allowed}.devui-icon--disabled i{color:var(--devui-disabled-text, #adb0b8)}.devui-icon--operable:not(.devui-icon--disabled){cursor:pointer;transition:color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--operable:not(.devui-icon--disabled) i{cursor:pointer}.devui-icon--operable:hover:not(.devui-icon--disabled){color:var(--devui-icon-fill-hover, #252b3a)}.devui-icon--operable:hover:not(.devui-icon--disabled).devui-icon__container{background-color:var(--devui-icon-background-hover, var(--devui-list-item-hover-bg, #f2f2f3))}.devui-icon--operable:hover:not(.devui-icon--disabled) i{color:var(--devui-icon-fill-hover, #252b3a)}.devui-icon--operable:active:not(.devui-icon--disabled){color:var(--devui-icon-active-color, var(--devui-icon-fill-active, #252b3a))}.devui-icon--operable:active:not(.devui-icon--disabled).devui-icon__container{background-color:var(--devui-icon-background-active, var(--devui-list-item-active-bg, #f2f5fc))}.devui-icon--operable:active:not(.devui-icon--disabled) i{color:var(--devui-icon-active-color, var(--devui-icon-fill-active, #252b3a))}.devui-icon--operable.devui-icon__container{height:32px;line-height:32px;padding:0 8px;margin-left:-8px;border-radius:var(--devui-border-radius, 2px);transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-icon--spin{animation:iconSpin 2.5s linear infinite}.devui-svg-icon{vertical-align:middle}@keyframes iconSpin{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}.devui-carousel{display:block;position:relative}.devui-carousel .devui-carousel__arrow{position:absolute;width:100%;top:50%}.devui-carousel .devui-carousel__arrow .arrow-left{position:absolute;top:-18px;z-index:2;cursor:pointer;width:36px;height:36px;border-radius:18px;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-length-hover, 0 8px 16px 0) var(--devui-light-shadow, rgba(37, 43, 58, .1));display:inline-flex;align-items:center;justify-content:center;left:10px}.devui-carousel .devui-carousel__arrow .arrow-left:hover{background:var(--devui-area, #f8f8f8)}.devui-carousel .devui-carousel__arrow .arrow-left svg polygon{fill:var(--devui-text, #252b3a)}.devui-carousel .devui-carousel__arrow .arrow-right{position:absolute;top:-18px;z-index:2;cursor:pointer;width:36px;height:36px;border-radius:18px;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-length-hover, 0 8px 16px 0) var(--devui-light-shadow, rgba(37, 43, 58, .1));display:inline-flex;align-items:center;justify-content:center;right:10px}.devui-carousel .devui-carousel__arrow .arrow-right:hover{background:var(--devui-area, #f8f8f8)}.devui-carousel .devui-carousel__arrow .arrow-right svg polygon{fill:var(--devui-text, #252b3a)}.devui-carousel .devui-carousel__item-wrapper{position:relative;overflow:hidden;height:100%}.devui-carousel .devui-carousel__item-wrapper .devui-carousel__item-container{display:flex;height:100%;position:relative}.devui-carousel .devui-carousel__item-wrapper .devui-carousel__item-container .devui-carousel__item{flex:1;position:relative;height:100%}.devui-carousel .devui-carousel__dots{position:absolute;display:flex;justify-content:center;width:100%;list-style:none}.devui-carousel .devui-carousel__dots.bottom{bottom:8px}.devui-carousel .devui-carousel__dots.top{top:8px}.devui-carousel .devui-carousel__dots .dot-item{width:6px;height:6px;border-radius:3px;margin-right:8px;background:var(--devui-icon-fill, #71757f)}.devui-carousel .devui-carousel__dots .dot-item:hover{cursor:pointer;background:var(--devui-icon-fill-hover, #252b3a)}.devui-carousel .devui-carousel__dots .dot-item.active{width:24px;background:var(--devui-icon-fill-active, #252b3a);transition:all var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-carousel .devui-carousel__arrow .arrow-left,.devui-carousel .devui-carousel__arrow .arrow-right{transition:background-color var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1))}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { toRefs, ref, onMounted, defineComponent, createVNode } from "vue";
|
|
2
|
+
import * as Diff2Html from "diff2html";
|
|
3
|
+
const codeReviewProps = {
|
|
4
|
+
diff: {
|
|
5
|
+
type: String,
|
|
6
|
+
required: true,
|
|
7
|
+
default: ""
|
|
8
|
+
},
|
|
9
|
+
outputFormat: {
|
|
10
|
+
type: String,
|
|
11
|
+
default: "line-by-line"
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
function createBem(namespace, element, modifier) {
|
|
15
|
+
let cls = namespace;
|
|
16
|
+
if (element) {
|
|
17
|
+
cls += `__${element}`;
|
|
18
|
+
}
|
|
19
|
+
if (modifier) {
|
|
20
|
+
cls += `--${modifier}`;
|
|
21
|
+
}
|
|
22
|
+
return cls;
|
|
23
|
+
}
|
|
24
|
+
function useNamespace(block, needDot = false) {
|
|
25
|
+
const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
|
|
26
|
+
const b = () => createBem(namespace);
|
|
27
|
+
const e = (element) => element ? createBem(namespace, element) : "";
|
|
28
|
+
const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
|
|
29
|
+
const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
|
|
30
|
+
return {
|
|
31
|
+
b,
|
|
32
|
+
e,
|
|
33
|
+
m,
|
|
34
|
+
em
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function useCodeReview(props) {
|
|
38
|
+
const { diff, outputFormat } = toRefs(props);
|
|
39
|
+
const renderHtml = ref("");
|
|
40
|
+
onMounted(() => {
|
|
41
|
+
renderHtml.value = Diff2Html.html(diff.value, {
|
|
42
|
+
drawFileList: true,
|
|
43
|
+
matching: "lines",
|
|
44
|
+
outputFormat: outputFormat.value
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
return { renderHtml };
|
|
48
|
+
}
|
|
49
|
+
var diff2html_min = "";
|
|
50
|
+
var codeReview = "";
|
|
51
|
+
var CodeReview = defineComponent({
|
|
52
|
+
name: "DCodeReview",
|
|
53
|
+
props: codeReviewProps,
|
|
54
|
+
setup(props) {
|
|
55
|
+
const ns = useNamespace("code-review");
|
|
56
|
+
const {
|
|
57
|
+
renderHtml
|
|
58
|
+
} = useCodeReview(props);
|
|
59
|
+
return () => createVNode("div", {
|
|
60
|
+
"class": ns.b(),
|
|
61
|
+
"innerHTML": renderHtml.value
|
|
62
|
+
}, null);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
var index = {
|
|
66
|
+
title: "CodeReview \u4EE3\u7801\u68C0\u89C6",
|
|
67
|
+
category: "\u6F14\u8FDB\u4E2D",
|
|
68
|
+
status: "100%",
|
|
69
|
+
install(app) {
|
|
70
|
+
app.component(CodeReview.name, CodeReview);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
export { CodeReview, codeReviewProps, index as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(u,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("vue"),require("diff2html")):typeof define=="function"&&define.amd?define(["exports","vue","diff2html"],r):(u=typeof globalThis!="undefined"?globalThis:u||self,r(u.index={},u.Vue,u.Diff2Html))})(this,function(u,r,s){"use strict";function l(e){if(e&&e.__esModule)return e;var n={__proto__:null,[Symbol.toStringTag]:"Module"};return e&&Object.keys(e).forEach(function(t){if(t!=="default"){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}}),n.default=e,Object.freeze(n)}var m=l(s);const a={diff:{type:String,required:!0,default:""},outputFormat:{type:String,default:"line-by-line"}};function f(e,n,t){let i=e;return n&&(i+=`__${n}`),t&&(i+=`--${t}`),i}function p(e,n=!1){const t=n?`.devui-${e}`:`devui-${e}`;return{b:()=>f(t),e:o=>o?f(t,o):"",m:o=>o?f(t,"",o):"",em:(o,c)=>o&&c?f(t,o,c):""}}function v(e){const{diff:n,outputFormat:t}=r.toRefs(e),i=r.ref("");return r.onMounted(()=>{i.value=m.html(n.value,{drawFileList:!0,matching:"lines",outputFormat:t.value})}),{renderHtml:i}}var y="",w="",d=r.defineComponent({name:"DCodeReview",props:a,setup(e){const n=p("code-review"),{renderHtml:t}=v(e);return()=>r.createVNode("div",{class:n.b(),innerHTML:t.value},null)}}),_={title:"CodeReview \u4EE3\u7801\u68C0\u89C6",category:"\u6F14\u8FDB\u4E2D",status:"100%",install(e){e.component(d.name,d)}};u.CodeReview=d,u.codeReviewProps=a,u.default=_,Object.defineProperty(u,"__esModule",{value:!0}),u[Symbol.toStringTag]="Module"});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.d2h-wrapper{text-align:left}.d2h-file-header{background-color:#f7f7f7;border-bottom:1px solid #d8d8d8;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;height:35px;padding:5px 10px}.d2h-file-header.d2h-sticky-header{position:sticky;top:0;z-index:1}.d2h-file-stats{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;margin-left:auto}.d2h-lines-added{border:1px solid #b4e2b4;border-radius:5px 0 0 5px;color:#399839;padding:2px;text-align:right;vertical-align:middle}.d2h-lines-deleted{border:1px solid #e9aeae;border-radius:0 5px 5px 0;color:#c33;margin-left:1px;padding:2px;text-align:left;vertical-align:middle}.d2h-file-name-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;width:100%}.d2h-file-name{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.d2h-file-wrapper{border:1px solid #ddd;border-radius:3px;margin-bottom:1em}.d2h-file-collapse{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #ddd;border-radius:3px;cursor:pointer;display:none;font-size:12px;justify-content:flex-end;padding:4px 8px}.d2h-file-collapse.d2h-selected{background-color:#c8e1ff}.d2h-file-collapse-input{margin:0 4px 0 0}.d2h-diff-table{border-collapse:collapse;font-family:Menlo,Consolas,monospace;font-size:13px;width:100%}.d2h-files-diff{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.d2h-file-diff{overflow-y:hidden}.d2h-file-diff.d2h-d-none,.d2h-files-diff.d2h-d-none{display:none}.d2h-file-side-diff{display:inline-block;overflow-x:scroll;overflow-y:hidden;width:50%}.d2h-code-line{padding:0 8em;width:calc(100% - 16em)}.d2h-code-line,.d2h-code-side-line{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.d2h-code-side-line{padding:0 4.5em;width:calc(100% - 9em)}.d2h-code-line-ctn{word-wrap:normal;background:none;display:inline-block;padding:0;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;vertical-align:middle;white-space:pre;width:100%}.d2h-code-line del,.d2h-code-side-line del{background-color:#ffb6ba;border-radius:.2em;display:inline-block;margin-top:-1px;text-decoration:none}.d2h-code-line ins,.d2h-code-side-line ins{background-color:#97f295;border-radius:.2em;display:inline-block;margin-top:-1px;text-align:left;text-decoration:none}.d2h-code-line-prefix{word-wrap:normal;background:none;display:inline;padding:0;white-space:pre}.line-num1{float:left}.line-num1,.line-num2{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;padding:0 .5em;text-overflow:ellipsis;width:3.5em}.line-num2{float:right}.d2h-code-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;cursor:pointer;display:inline-block;position:absolute;text-align:right;width:7.5em}.d2h-code-linenumber:after{content:"\200b"}.d2h-code-side-linenumber{background-color:#fff;border:solid #eee;border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;cursor:pointer;display:inline-block;overflow:hidden;padding:0 .5em;position:absolute;text-align:right;text-overflow:ellipsis;width:4em}.d2h-code-side-linenumber:after{content:"\200b"}.d2h-code-side-emptyplaceholder,.d2h-emptyplaceholder{background-color:#f1f1f1;border-color:#e1e1e1}.d2h-code-line-prefix,.d2h-code-linenumber,.d2h-code-side-linenumber,.d2h-emptyplaceholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.d2h-code-linenumber,.d2h-code-side-linenumber{direction:rtl}.d2h-del{background-color:#fee8e9;border-color:#e9aeae}.d2h-ins{background-color:#dfd;border-color:#b4e2b4}.d2h-info{background-color:#f8fafd;border-color:#d5e4f2;color:#0000004d}.d2h-file-diff .d2h-del.d2h-change{background-color:#fdf2d0}.d2h-file-diff .d2h-ins.d2h-change{background-color:#ded}.d2h-file-list-wrapper{margin-bottom:10px}.d2h-file-list-wrapper a{color:#3572b0;text-decoration:none}.d2h-file-list-wrapper a:visited{color:#3572b0}.d2h-file-list-header{text-align:left}.d2h-file-list-title{font-weight:700}.d2h-file-list-line{display:-webkit-box;display:-ms-flexbox;display:flex;text-align:left}.d2h-file-list{display:block;list-style:none;margin:0;padding:0}.d2h-file-list>li{border-bottom:1px solid #ddd;margin:0;padding:5px 10px}.d2h-file-list>li:last-child{border-bottom:none}.d2h-file-switch{cursor:pointer;display:none;font-size:10px}.d2h-icon{fill:currentColor;margin-right:10px;vertical-align:middle}.d2h-deleted{color:#c33}.d2h-added{color:#399839}.d2h-changed{color:#d0b44c}.d2h-moved{color:#3572b0}.d2h-tag{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:10px;margin-left:5px;padding:0 2px}.d2h-deleted-tag{border:1px solid #c33}.d2h-added-tag{border:1px solid #399839}.d2h-changed-tag{border:1px solid #d0b44c}.d2h-moved-tag{border:1px solid #3572b0}.devui-code-review tr{border:none}.devui-code-review th,.devui-code-review td{border:none;padding:0}
|